const app = getApp();
Page({
  data: {
    username: '',
    password: '',
    errorMessage: '',
    logo:'http://ttp.hantao.fun/c25177fd606c88981e29396ae34c494.jpg'
    // 可以添加其他需要的数据，如userInfo, token等
  },

  // 监听用户名输入
  bindUsernameInput: function (e) {
    this.setData({
      username: e.detail.value,
    });
  },

  // 监听密码输入
  bindPasswordInput: function (e) {
    this.setData({
      password: e.detail.value,
    });
  },

  // 登录按钮点击事件
  login: function () {
    const that = this; // 保存对当前页面对象的引用

    // 检查用户名和密码是否已填写
    if (!that.data.username || !that.data.password) {
      that.setData({
        errorMessage: '用户名和密码不能为空',
      });
      return;
    }

    // 发送登录请求
    wx.request({
      url: 'http://localhost:8880/shequ/wxuser/wxlogin',
      method: 'POST',
      data: {
        userName: that.data.username,
        password: that.data.password,
      },
      success: (res) => {
        if (res.data.flag) {
          // 登录成功
          wx.showToast({
            title: '登录成功！',
            icon: 'success',
            duration: 2000
          });
          // 存储用户名到本地存储，以便个人中心页面获取
          wx.setStorageSync('username', that.data.username);

          // 假设后端返回的用户信息包含sessionKey等需要存储的信息
          const userInfo = res.data.data;
          wx.setStorageSync('userInfo', userInfo);

          // 登录成功后再进行微信登录
          wx.login({
            success: (loginRes) => {
              if (loginRes.code) {
                // 发起网络请求
                wx.request({
                  url: 'http://localhost:8880/mini/login', // 这里应该是你的服务器接口地址
                  method: 'GET',
                  data: {
                    code: loginRes.code
                  },
                  success: (res) => {
                    const {
                      flag,
                      data,
                      message
                    } = res.data;
                    if (flag) {
                      // 存储用户信息到本地
                      wx.setStorageSync('token', `${data.tokenHead} ${data.token}`);
                      wx.setStorageSync('userInfo', data.userInfo);
                      wx.setStorageSync('openid', data.openid);

                      // 获取微信运动步数
                      wx.getWeRunData({
                        success: (wxRes) => {
                          const {
                            encryptedData,
                            iv
                          } = wxRes;
                          let form = {
                            encryptedData: encryptedData,
                            iv: iv,
                            sessionKey: data.sessionKey, // 确保这里获取的是正确的 sessionKey
                            openid: data.openid
                          };
                          wx.request({
                            url: 'http://localhost:8880/mini/wxrun', // 这里应该是你的服务器接口地址
                            method: 'POST',
                            data: form,
                            success: (result) => {
                              wx.setStorageSync('step', result.data);
                              wx.switchTab({
                                url: '/pages/index/index',
                              });

                              // 获取微信运动步数后跳转到主页
                              wx.switchTab({
                                url: '/pages/index/index',
                              });
                            },
                            
                            
                            fail: (err) => {
                              console.error('获取微信运动步数失败:', err);
                              wx.showToast({
                                title: '获取微信运动步数失败',
                                icon: 'none',
                                duration: 3000
                              });
                            }
                          });
                        },
                        fail: (err) => {
                          console.error('获取微信运动数据失败:', err);
                          wx.showToast({
                            title: '请关注“微信运动”公众号后重试',
                            icon: 'none',
                            duration: 3000
                          });
                        }
                      });
                    } else {
                      wx.showToast({
                        title: message,
                        icon: 'error',
                        duration: 2000
                      });
                    }
                  },
                  fail: (err) => {
                    console.error('微信登录失败:', err);
                    wx.showToast({
                      title: '微信登录失败，请重试',
                      icon: 'none',
                      duration: 2000
                    });
                  }
                });
              } else {
                console.error('微信登录失败！', loginRes.errMsg);
                wx.showToast({
                  title: '微信登录失败，请重试',
                  icon: 'none',
                  duration: 2000
                });
              }
            }
          });
        } else {
          // 登录失败，显示错误信息
          that.setData({
            errorMessage: res.data.message,
          });
        }
      },
      fail: (err) => {
        console.error('登录失败：', err);
        that.setData({
          errorMessage: '登录失败，请稍后重试！',
        });
      }
    });
  }
});